package com.cj.wisdom_display

import android.app.Application
import com.android.tony.defenselib.DefenseCrash
import com.android.tony.defenselib.handler.IExceptionHandler
import com.cj.wisdom_display.utils.LogUtil

/**
 * ━━━━━━神兽出没━━━━━━
 * 　　　┏┓　　　┏┓
 * 　　┏┛┻━━━┛┻┓
 * 　　┃　　　　　　　┃
 * 　　┃　　　━　　　┃
 * 　　┃　┳┛　┗┳　┃
 * 　　┃　　　　　　　┃
 * 　　┃　　　┻　　　┃
 * 　　┃　　　　　　　┃
 * 　　┗━┓　　　┏━┛Code is far away from bug with the animal protecting
 * 　　　　┃　　　┃    神兽保佑,代码无bug
 * 　　　　┃　　　┃
 * 　　　　┃　　　┗━━━┓
 * 　　　　┃　　　　　　　┣┓
 * 　　　　┃　　　　　　　┏┛
 * 　　　　┗┓┓┏━┳┓┏┛
 * 　　　　　┃┫┫　┃┫┫
 * 　　　　　┗┻┛　┗┻┛
 * ━━━━━━感觉萌萌哒━━━━━━
 *
 * Created by yi on 2021/6/3.
 */
class MyApplication : Application(), IExceptionHandler {

    companion object {
        lateinit var instance: MyApplication
    }

    override fun onCreate() {
        super.onCreate()
        instance = this
        //崩溃拦截
        DefenseCrash.initialize()
        DefenseCrash.install(this)
    }

    override fun onCaughtException(p0: Thread?, p1: Throwable?, p2: Boolean) {
        //崩溃发生时打印错误信息  此处可做上传处理
        LogUtil.e("拦截到崩溃: " + p1?.message)
    }

    override fun onEnterSafeMode() {
        //崩溃后的loop回调 暂不处理
    }

    override fun onMayBeBlackScreen(p0: Throwable?) {
        //严重崩溃导致的屏幕黑屏卡死  此时最好销毁界面 重启应用
        LogUtil.e("拦截到严重崩溃: " + p0?.message)
    }

}